package org.wu.spring.db.integration.compare.application;


import org.wu.framework.lazy.orm.database.lambda.domain.LazyPage;
import org.wu.framework.web.response.Result;
import org.wu.spring.db.integration.compare.application.command.orm.compare.records.*;
import org.wu.spring.db.integration.compare.application.dto.DbCompareRecordsDTO;
import org.wu.spring.db.integration.compare.domain.model.orm.compare.records.DbCompareRecords;
import org.wu.spring.db.integration.compare.application.command.orm.compare.records.DbCompareRecordsStoryCommand;

import java.util.List;

import org.wu.spring.db.integration.compare.domain.model.orm.compare.records.DbCompareRecordsEcharts;

/**
 * describe Orm 操作记录
 *
 * @author Jia wei Wu
 * @date 2024/02/28 01:02 下午
 * @see org.wu.framework.lazy.orm.core.persistence.reverse.lazy.ddd.DefaultDDDLazyApplication
 **/

public interface DbCompareRecordsApplication {


    /**
     * describe 新增Orm 操作记录
     *
     * @param dbCompareRecordsStoryCommand 新增Orm 操作记录
     * @return {@link Result< DbCompareRecords >} Orm 操作记录新增后领域对象
     * @author Jia wei Wu
     * @date 2024/02/28 01:02 下午
     **/

    Result<DbCompareRecords> story(DbCompareRecordsStoryCommand dbCompareRecordsStoryCommand);

    /**
     * describe 批量新增Orm 操作记录
     *
     * @param dbCompareRecordsStoryCommandList 批量新增Orm 操作记录
     * @return {@link Result<List< DbCompareRecords >>} Orm 操作记录新增后领域对象集合
     * @author Jia wei Wu
     * @date 2024/02/28 01:02 下午
     **/

    Result<List<DbCompareRecords>> batchStory(List<DbCompareRecordsStoryCommand> dbCompareRecordsStoryCommandList);

    /**
     * describe 更新Orm 操作记录
     *
     * @param ormCompareRecordsUpdateCommand 更新Orm 操作记录
     * @return {@link Result< DbCompareRecords >} Orm 操作记录领域对象
     * @author Jia wei Wu
     * @date 2024/02/28 01:02 下午
     **/

    Result<DbCompareRecords> updateOne(OrmCompareRecordsUpdateCommand ormCompareRecordsUpdateCommand);

    /**
     * describe 查询单个Orm 操作记录
     *
     * @param ormCompareRecordsQueryOneCommand 查询单个Orm 操作记录
     * @return {@link Result< DbCompareRecordsDTO >} Orm 操作记录DTO对象
     * @author Jia wei Wu
     * @date 2024/02/28 01:02 下午
     **/

    Result<DbCompareRecordsDTO> findOne(OrmCompareRecordsQueryOneCommand ormCompareRecordsQueryOneCommand);

    /**
     * describe 查询多个Orm 操作记录
     *
     * @param ddCompareRecordsQueryListCommand 查询多个Orm 操作记录
     * @return {@link Result <List<DbCompareRecordsDTO>>} Orm 操作记录DTO对象
     * @author Jia wei Wu
     * @date 2024/02/28 01:02 下午
     **/

    Result<List<DbCompareRecordsDTO>> findList(DdCompareRecordsQueryListCommand ddCompareRecordsQueryListCommand);

    /**
     * describe 分页查询多个Orm 操作记录
     *
     * @param ddCompareRecordsQueryListCommand 分页查询多个Orm 操作记录
     * @return {@link Result <LazyPage<DbCompareRecordsDTO>>} 分页Orm 操作记录DTO对象
     * @author Jia wei Wu
     * @date 2024/02/28 01:02 下午
     **/

    Result<LazyPage<DbCompareRecordsDTO>> findPage(int size, int current, DdCompareRecordsQueryListCommand ddCompareRecordsQueryListCommand);

    /**
     * describe 删除Orm 操作记录
     *
     * @param dbCompareRecordsRemoveCommand 删除Orm 操作记录
     * @return {@link Result< DbCompareRecords >} Orm 操作记录
     * @author Jia wei Wu
     * @date 2024/02/28 01:02 下午
     **/

    Result<DbCompareRecords> remove(DbCompareRecordsRemoveCommand dbCompareRecordsRemoveCommand);

    /**
     * describe 获取echarts数据
     */
    Result<DbCompareRecordsEcharts> findEchartsData(String type);
}